Adaptive bitrate (ABR) streaming is a technique used in streaming multimedia content over computer networks. While in the past most video streaming technologies utilized streaming protocols such as Real Time Transport Protocol (RTP) with Real Time Streaming Protocol (RTSP), today's adaptive streaming technologies are almost exclusively based on Hypertext Transfer Protocol (HTTP) and designed to work efficiently over large distributed HTTP networks such as the Internet.
ABR clients operate by detecting a user's bandwidth and central processing unit capacity in real time and adjusting the quality of a video stream accordingly. ABR servers typically utilize the use of an encoder which encodes a single source video at multiple bit rates. An ABR client (i.e. a “player”) switches between playing the different encoded streams depending on available resources. Typically, ABR results in streaming video transmissions with very little buffering, fast start time and a good experience for both high-end and low-end connections.
The player is able to access the available streams at differing bit rates, and segments of the streams by accessing a master playlist. In some cases, when starting, the client requests the segments from the lowest bit rate stream. Other strategies may be used depending on the desired user experience. If the client finds the download speed is greater than the bit rate of the segment downloaded, then it may request higher bit rate segments. Later, if the client finds the download speed for a segment is lower than the bit rate for the segment, and therefore the network throughput has deteriorated, then it may request a lower bit rate segment. The segment size can vary depending on the particular implementation, but is typically between two (2) and ten (10) seconds.